SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
-- paObtenerDiasDeLicenciaPorAgente
-- 10 - 09 - 2006
-- Retorna la cantidad de dias de licencia por cada licencia del agente.
CREATE PROCEDURE [dbo].[paObtenerDiasDeLicenciaPorAgente] 

@Documento INT,
@Licencia INT = NULL,
@FechaDesde DATETIME = NULL,
@FechaHasta DATETIME = NULL,
@Turno INT = NULL

AS
SET NOCOUNT ON
SET DATEFORMAT DMY
DECLARE @IdAgente INT
DECLARE @IdTurno INT

SELECT @IdAgente = IdAgente FROM tb_Agentes WHERE Documento = @Documento

IF @FechaDesde IS NULL 
	SELECT @FechaDesde = MIN(FechaAlta) FROM tb_ServiciosAgentes WHERE Agente = @IdAgente

IF @FechaHasta IS NULL
	SELECT @FechaHasta = GETDATE()

IF @Turno IS NULL
	SELECT @IdTurno = 0
ELSE
	SELECT @IdTurno = @Turno


SELECT DISTINCT L.Descripcion, DescripcionAplicacion, dbo.fnDiasDeLicencia(Agente, @FechaDesde, @FechaHasta, IdLicencia,  CASE WHEN UTDuracionMaxima = 1 THEN 'C' ELSE 'H' END, L.Aplicacion, @IdTurno) AS Dias
	FROM vw_LicenciasDelAgente L
		WHERE Documento = @Documento 
		     AND ( (@Turno IS NULL  AND Aplicacion IN (1,3)) OR (@Turno IS NOT NULL  AND Aplicacion = 2) )
		     AND ( (@Licencia IS NULL) OR (@Licencia IS NOT NULL AND IdLicencia = @Licencia) )
GO
GRANT EXECUTE ON  [dbo].[paObtenerDiasDeLicenciaPorAgente] TO [PersonalDocente]
GRANT EXECUTE ON  [dbo].[paObtenerDiasDeLicenciaPorAgente] TO [PersonalDocenteDireccion]
GRANT EXECUTE ON  [dbo].[paObtenerDiasDeLicenciaPorAgente] TO [SoloVer]
GO
